Python读取文本文件(txt、CSV、Excel) |
您所在的位置:网站首页 › python 读csv文件 › Python读取文本文件(txt、CSV、Excel) |
Python读取文本文件(txt、CSV、Excel) 相关程序及数据文件: 链接:https://pan.baidu.com/s/1wVNb3w_eFyVS4nIK_FBfOg 提取码:c3t2 复制这段内容后打开百度网盘手机App,操作更方便哦 读取文本文件(传统方法)保存数据的文件可能是文本文件、CSV文件、Excel文件或者其他类型。访问数据文件是利用python进行数据处理、加工和分析的前替。一般我们可以通过写固定的文件名称访问,但这样无法处理多个文件。读取不同文件的方法是,在终端窗口(cmd)的命令行中,Python脚本的名字后加上完整文件路径。为此,需要引入sys模块。创建一个.py文件,内容如下,保存为script.py #!/usr/bin/env python3 from math import exp, log, sqrt import re from datetime import date,time,datetime,timedelta from operator import itemgetter import sys导入sys模块后,我们就可以使用argv列表变量啦,argv[0]就是返回脚本名称,argv[1]是命令行中传递给脚本的第一个附加参数。 我们先创建一个文本文件(txt),保存在桌面上,文件名为file_to_read.txt,之后再读取它。 代码的意思是把读取文件的路径名赋值给filereader后,依次打印出来。保存script.py到桌面。 读取文本文件,在cmd中输入下面的命令: (如果路径不在桌面则,输入cd Desktop) 上述方法在复杂脚本中会导致错误,因为文件一直被打开,直到用close函数关闭。with语句在语句结束时,自动关闭文件。 imput_file = sys.argv[1] print("Output #144:") with open(input_file,'r',newline='') as filereader: for row in filereader: print("{}".format(row.strip()))上述都是非常简单的示例,后面的示例,以此为基础访问其他文件类型,或访问多个文件 使用glob读取多个文本文件glob模块之所以强大,是因为它处理的是文件夹(目录)。 读取多个文件的方法是命令行中将包含输入文件目录路径写在Python脚本名称之后。要使用这种方法,需要引用os模块和glob模块。 #!/usr/bin/enc python3 from math import exp,log,sqrt import re from datetime import date,time,datetime,timedelta from operator import itemgetter import sys import glob import osos模块函数举例: os.path.join()函数,巧妙地把一个或多个路径连接在一起。 glob模块可以找出与特定模式相匹配的所有路径名。 读取多个文件,我们再创建一个文本文件another_file_to_read,放到桌面,内容如下: 在cmd中输入py文件+读取路径即可: C:\Users\Administrator\Desktop>script.py "C:\User\Administrator\Desktop\文件名"结果: 了解如何读取CSV文件,我们先通过基础python代码读取一次,再通过csv模块读取一次。这样我们就知道代码的工作流程了。 创建Script1.py文件,输入下列代码: #!/usr/bin/env python3 import sys input_file = sys.argv[1] #cmd 中的第一个文件名称 output_file = sys.argv[2] #cmd 中的第二个文件名称 with open(input_file,'r',newline='') as filereader: with open(output_file,'w',newline='') as filewriter: header = filereader.readline() header = header.strip() header_list = header.split(',') print(header_list) filewriter.write(','.join(map(str,header_list))+'\n') for row in filereader: row = row.strip() row_list = row.split(',') print(row_list) filewriter.write(','.join(map(str,row_list))+'\n')下载数据文件supplier_data.csv,打开可以看到: 使用CSV模块读取的优点是,这个模块有利于正确处理数据值中的嵌入逗号和其他复杂模式。比如,$601,500.00 ,采用基础python读取,逗号分割就会分解编程’601’,'500.00’两个数据。 创建Script2.py文件,输入代码: #!/usr/bin/env python3 import csv import sys input_file = sys.argv[1] output_file = sys.argv[2] with open(input_file,'r',newline='') as csv_if: with open(output_file,'w',newline='') as csv_of: filereader = csv.reader(csv_if,delimiter=',') filewriter = csv.writer(csv_of,delimiter=',') for row in filereader: print(row) filewriter.writerow(row)把数据文件中最后一行的cost改为$601,500.00。在cmd运行上面的代码。 创建并保存Script3.py文件,写入代码: #!/usr/bin/env python3 import sys import pandas as pd input_file = sys.argv[1] output_file = sys.argv[2] data_frame = pd.read_csv(input_file) print(data_frame) data_frame.to_csv(output_file,index=False)同样,在cmd中运行上述代码。可以看到数据形式为DataFrame的输出。 把之前用的supplier_data.csv文件,在office中打开,然后另存为excel文件(.xls、.xlsx),用两种读取方法将读取supplier_data.csv,并写入output4.xlsx、output5.xlsx文件中。 1、基础python +xlrd、xlwt模块 2、pandas读取 基础python +xlrd、xlwt模块先用第一种方法读取,创建Script4.py文件,写入代码保存: #!/usr/bin/env python3 import sys from xlrd import open_workbook from xlwt import Workbook input_f = sys.argv[1] output_f = sys.argv[2] output_wb = Workbook() output_worksheet = output_wb.add_sheet('supplier_data_output') with open_workbook(input_f) as wb: worksheet = wb.sheet_by_name('supplier_data') for row_index in range(worksheet.nrows): for column_index in range(worksheet.ncols): output_worksheet.write(row_index,column_index,worksheet.cell_value(row_index,column_index)) output_wb.save(output_f)cmd中运行程序: 第二种方法,创建Script4.py文件,写入代码保存: #!/usr/bin/env python3 import pandas as pd import sys input_f = sys.argv[1] output_f = sys.argv[2] date_frame = pd.read_excel(input_f,sheetname='supplier_data') writer = pd.ExcelWriter(output_f) date_frame.to_excel(write,sheet_name='supplier_data',index=False) writer.save()同样,在cmd中运行: 刚开始学习写CSDN Blog,希望将此作为自我提升的记录,各位大大有任何建议或问题尽情留言。 欢迎大家的批评与指正。 注:参考书籍《python数据分析基础》 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |